﻿using System;
using System.Collections.Generic;
using CID.Execution.Support.Scripting;

namespace CID.Execution.Controller
{
    interface IDeploymentState
    {
        int ActivationErrors { get; }
        IEnumerable<LocationActivationScript> ActivationScripts { get; }
        int DeactivationErrors { get; }
        IEnumerable<LocationDeactivationScript> DeactivationScripts { get; }
        int DeploymentErrors { get; }
        IEnumerable<LocationDeploymentScript> DeploymentScripts { get; }
        bool LocationHasErrors(int locationId);
        Guid DeploymentUniqueIdentifier { get; }
        int NotifyActivationCompleted(int locationId, bool error);
        int NotifyDeactivationCompleted(int locationId, bool error);
        int NotifyDeploymentCompleted(int locationId, bool error);
        int PendingActivations { get; }
        int PendingDeactivations { get; }
        int PendingDeployments { get; }
        bool Successful { get; }
    }
}
